//
//  BKBaseViewController.swift
//  BaoKeSwift
//
//  Created by geek-duan on 2017/9/22.
//  Copyright © 2017年 geek-duan. All rights reserved.
//

import UIKit

class BaseViewController: UIViewController {
    
    // MARK: - 公开属性或方法
    /// - 表格
    var tableView: UITableView?
    /// - 顶部刷新
//    lazy var header = MJRefreshNormalHeader()
//    /// - 底部刷新
//    lazy var footer = MJRefreshAutoNormalFooter()
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setUI()
    }
 
    /// - 加载数据
    @objc func loadData() {
        /// - 由子类实现
    }
    
    
    // MARK: - 私有属性或方法
    /// - 上拉/下拉标记
    var isPull = true  //默认true 为下拉
    
    /// - 加载新数据
    @objc private func loadNewData() {
        isPull = true
        loadData()
    }
    
    // MARK: - 加载更多数据
    @objc private func loadMoreData() {
        isPull = false
        loadData()
    }
}

// MARK: - 设置界面
extension BaseViewController {
    
    /// - 布局UI
    private func setUI() {
        view.backgroundColor = UIColor.backgroundColor //通一背景颜色
        setTableView()
        setRefresh()
        
        tableView?.snp.makeConstraints({ (make) in
            make.left.top.right.bottom.equalToSuperview()
        })
        
        if #available(iOS 11.0, *) {
            tableView?.contentInsetAdjustmentBehavior = .never
            tableView?.estimatedRowHeight = 0
            tableView?.estimatedSectionFooterHeight = 0
            tableView?.estimatedSectionHeaderHeight = 0
        }
    }
    
    /// - 创建tableview
    @objc func setTableView() {
        tableView = UITableView(frame: CGRect(), style: .plain)
        tableView?.delegate   = self
        tableView?.dataSource = self
        tableView?.separatorStyle = .none
        view.addSubview(tableView!)
    }
    
    /// - 设置刷新控件
    @objc func setRefresh() {
//        header.setRefreshingTarget(self, refreshingAction: #selector(loadNewData))
//        footer.setRefreshingTarget(self, refreshingAction: #selector(loadMoreData))
    }
}

// MARK: - tableView TableViewDelegate和TableViewDataSource代理
extension BaseViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
    }
}

